// 可索引接口： 数组， 对象的 约束

// 只能是纯数字的数组
var arr:number[] = [1,2,3,4]

// 纯字符串的数组
var arr2:Array<string> = ['1','2', 'asda']

interface UserArr {
  [index: number]: string;
}

var arr3:UserArr = ['12', '12', 'asd']

console.log(arr3[0])
// 索引是字符串就不行，报错
// console.log(arr3['3'])


// 错误的写法， 12是number 类型， 我们数组约束要求每个都是 string类型
// 不能将类型“number”分配给类型“string”
// let arr4:UserArr = [12, 'asd'];

// 定义一个数组，里面可以放任意类型的

interface anyArr {
  [index: number]: any;
}

// 这种就可以存放任何类型的元素
let arr5:anyArr = ['字符串', 12, null, undefined, true, {name: '张三'}] 

console.log(arr5[5].name)